package models

// 用户表模型
type User struct {
	BaseModel
	Username string `gorm:"type:varchar(50);uniqueIndex;not null"` // 用户名
	Password string `gorm:"type:varchar(255);not null"`            // 密码（哈希后）
	Mobile   string `gorm:"type:varchar(20);uniqueIndex"`          // 手机号
	Email    string `gorm:"type:varchar(100)"`                     // 邮箱
	Status   int    `gorm:"type:smallint;default:10"`              // 状态：10-正常 20-禁用
	Avatar   string `gorm:"type:varchar(255)"`                     // 头像URL
	Salt     string `gorm:"type:varchar(10);not null;default '';comment '密码盐'"`
}

// 用户收货地址模型
type UserAddress struct {
	BaseModel
	UserID    uint   `gorm:"index:idx_user"`             // 关联用户ID
	IsDefault bool   `gorm:"default:false"`              // 是否默认地址
	Consignee string `gorm:"type:varchar(50);not null"`  // 收货人姓名
	Mobile    string `gorm:"type:varchar(20);not null"`  // 收货人手机
	Province  string `gorm:"type:varchar(20)"`           // 省
	City      string `gorm:"type:varchar(20)"`           // 市
	District  string `gorm:"type:varchar(20)"`           // 区/县
	Detail    string `gorm:"type:varchar(255);not null"` // 详细地址
}

// 设置表名（可选，GORM默认使用结构体名的复数形式）
func (User) TableName() string {
	return "users"
}

func (UserAddress) TableName() string {
	return "user_addresses"
}
